共计 1442 个字符,预计需要花费 4 分钟才能阅读完成。
JavaScript 的起源故事
JavaScript 的设计思想
ECMAScript 和 JavaScript 的关系
1996 年 11 月,JavaScript 的创造者 --Netscape 公司,决定将 JavaScript 提交给国际标准化组织 ECMA,希望这门语言能够成为国际标准
次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版
该标准一开始就是针对 JavaScript 语言制定的,但是没有称其为 JavaScript,有两个方面的原因:
- 一是商标,JavaScript 本身已被 Netscape 注册为商标
- 二是想体现这门语言的制定者是 ECMA,而不是 Netscape,这样有利于保证这门语言的开发性和中立性
因此 ECMAScript 和 JavaScript 的关系是,前者是后者的标准,后者是前者的一种实现
ECMAScript 是一种由 Ecma 国际(前身为欧洲计算机制造商协会, 英文名称是 European Computer Manufacturers Association)通过 ECMA-262 标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为 JavaScript 或 JScript,所以 ECMAScript 可以理解为是 javascript 的一个标准, 而 javascript 是 ECMA-262 标准的实现和扩展
ECMAScript 的历史
年份 | 名称 | 描述 |
---|---|---|
1997 | ECMAScript 1 | 第一个版本 |
1998 | ECMAScript 2 | 版本变更 |
1999 | ECMAScript 3 | 添加正则表达式添加 try/catch |
ECMAScript 4 | 没有发布 | |
2009 | ECMAScript 5 | 添加 "strict mode" 严格模式添加 JSON 支持 |
2011 | ECMAScript 5.1 | 版本变更 |
2015 | ECMAScript 6(ES6) | 添加类和模块 |
2016 | ECMAScript 7 | 增加指数运算符(**)增加 Array.prototype.includes |
JavaScript 的组成
- ECMAScript:JavaScript 的语法标准。包括变量、表达式、运算符、函数、if 语句、for 语句等
- 文档对象模型(DOM)Document object model:操作网页上的元素的 API。比如让盒子移动、变色、轮播图等
- 浏览器对象模型(BOM)Broswer object model:操作浏览器部分功能的 API。比如让浏览器自动滚动
JavaScript 的特点
- 解释执行(浏览器就是解释器):事先不编译、逐行执行、无需进行严格的变量声明
- 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序
- 基于对象:内置大量现成对象,编写少量程序可以完成目标
JavaScript 的用途
- javaScript 一般用来编写客户端脚本,来为 html 页面添加交互行为,是前台语言,而不是后台语言(node.js 除外)
JavaScript 语言的类型
1. 弱类型
按照计算机语言的类型系统的设计方式, 可以分为强类型和弱类型两种
二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换
从使用者的角度来看,如果一个语言可以隐式转换它的所有类型,那么它的变量、表达式等在参与运算时,即使类型不正确,也能通过隐式转换来得到正确地类型,这对使用者而言,就好像所有类型都能进行所有运算一样,这样的语言被称作弱类型
2. 动态语言
动态语言:声明变量时无需指定类型
静态语言:声明变量时必先指定类型